var s = {
	alert : function($message, $reload) {
		// 打开提示dialog
		bootbox.alert({
			title: '提示信息',
			message: $message,
			buttons: {
               	ok: {
                    label: '确定',
                    className: 'btn bg-light-blue'
                }
            },
            callback: function() {
                if (typeof($reload) != "undefined" && $reload) {
                	window.location.reload();
            	}
            },
        });
	},
	del : function(o) {
		// 绑定删除事件
		var $url = o.data('url');
		if ($url == '' || $url == undefined)
			return;
		var $message = o.data('message') || '您确定要删除这条记录吗?';
		bootbox.confirm({
			title: "提示信息",
			buttons: {
	            confirm: {
	                label: '确认',
	                className: 'btn bg-light-blue'
	            },
	            cancel: {
	                label: '取消',
	                className: 'btn btn-default'
	            }
	        },
	        message: $message,
	        callback: function(result) {
				if (result == true) {
					$.getJSON($url, {
						isajax : 1
					}, function(json) {
						if (json.status == true) {
							// 删除成功
							s.alert(json.message, true);
						} else {
							// 执行失败,提示信息
							s.alert(json.message);
						}
					});
				}
			},
		});
	},

	converturl: function(url) {
		var timestamp = (new Date()).valueOf();
		if(url.indexOf("?")>=0){
	  		url = url + "&t=" + timestamp;
	 	}else{
	  		url = url + "?t=" + timestamp;
	 	}
	 	return url;
	},

	dialog : function(o) {
		var $type = o.data('type') || 'view';// 类型 form/view
		var $title = o.data('title') || '提示';
		var $url = o.data('url') || false;
		var $backfrop = o.data('backfrop') || true;
		var $closeButton = o.data('closeButton') || true;
		var $message = o.data('message') || '没有设置内容';
		var $form = o.data('form') || 'my_form';
		var $dialog_class = o.data('class') || 'my-modal';

		if ($message.substr(0, 1) == '#') {
			// 已存在的表单dom
			$message = $($message).html();
		} else if ($url != false) {
			// 从URL ajax获取
			$.ajax({
				type : "get",
				url : s.converturl($url),
				data : {},
				async : false,
				cache : false,
				success : function(data) {
					$message = data
					// 是否有form
					var _ = $(data);
					if ($(_).find('form').length > 0) {
						// 只支持一个
						$form = $(_).find('form').attr('id');
					}
				}
			});
		}
		bootbox.dialog({
		    // dialog的内容
			message : $message,
			// dialog的标题
			title : $title,
			// 退出dialog时的回调函数，包括用户使用ESC键及点击关闭
			onEscape : function() {
				
			},
			// 是否显示此dialog，默认true
			show : true,
			// 是否显示body的遮罩，默认true
			backdrop : $backfrop,
			// 是否显示关闭按钮，默认true
			closeButton : $closeButton,
			// 是否动画弹出dialog，IE10以下版本不支持
			animate : true,
			// dialog的类名
			className : $dialog_class,
			// dialog底端按钮配置
			buttons : {
				// 其中一个按钮配置
				cancel : {
					label : "取消",
					className : "btn btn-default",
				},
				success : {
					// 按钮显示的名称
					label : "确定",
					// 按钮的类名
					className : "btn bg-light-blue",
					// 点击按钮时的回调函数
					callback : function() {
						if ($type == 'form') {
							var form = $("#" + $form);
							if (form.length < 1)
								return;
							// 参数校验
							var params = form.serialize();
							var formData = new FormData(form[0]);
							if(!form.validate().form()) return false;

							$.ajax({
								type : "post",
								dataType : "json",
								url : form.attr('action'),
								data : formData,
								cache: false,
				                contentType: false,
				                processData: false,
								success : function(json) {
									if (json.status == true) {
										// 添加成功
										redirect_url = json.data.redirect_url;
										s.alert(json.message, true);
										if (redirect_url) {

										}
									} else {
										// 失败
										s.alert(json.message);
										return false;
									}
								},
								error : function() {
									s.alert("数据提交错误");
								}
							});
							return false;
						}
						if ($type == 'view') {
							return true;
						}
					}
				}
			}
		});
	},
	submit : function(f) {
		var $url = f.attr('action');
		var $method = f.attr('method') || 'POST';
		if ($url == '' || $url == undefined) {
			bootbox.alert('表单没有提交地址!');
			return false;
		}
		// 参数校验
		var params = f.serialize();
		$.ajax({
			type : $method,
			url : $url,
			data : params + '&isajax=1',
			async : false,
			dataType : 'JSON',
			success : function(json) {
				if (json.status == true) {
					// 添加成功
					redirect_url = json.data.redirect_url;
					if (redirect_url) {

					}
					s.alert(json.message, true);
				} else {
					// 失败
					s.alert(json.message);
					return false;
				}
			}
		});
		return false;
	},

	dialoginit: function() {
		// 删除
		$(".delete").off("click");
		$('.delete').on('click', function() {
			// 发起ajax请求
			s.del($(this));
		})
		// 打开dialog
		$(".open_dialog").off("click");
		$('.open_dialog').on('click', function() {
			s.dialog($(this));
		});
		// 确认提交
		$('.form_ajax').submit(function() {
			return s.submit($(this));
		});
	},
}

$(function() {
	s.dialoginit();
})